package org.zbclan.bf2.rcon.model;

import java.io.Serializable;
import java.util.regex.Pattern;

public class AudioSettings implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1351095607666399541L;

	public static final Pattern VOIP_ENABLED_PATTERN = Pattern
			.compile("AudioSettings\\.setVoipEnabled (\\d+)");
	public static final Pattern VOIP_PLAYBACK_VOLUME_PATTERN = Pattern
			.compile("AudioSettings\\.setVoipPlaybackVolume (\\d+(?:\\.\\d+)?)");
	public static final Pattern VOIP_CAPTURE_VOLUME_PATTERN = Pattern
			.compile("AudioSettings\\.setVoipCaptureVolume (\\d+(?:\\.\\d+)?)");
	public static final Pattern VOIP_CAPTURE_THRESHOLD_PATTERN = Pattern
			.compile("AudioSettings\\.setVoipCaptureThreshold (\\d+(?:\\.\\d+)?)");
	public static final Pattern VOIP_BOOST_ENABLED_PATTERN = Pattern
			.compile("AudioSettings\\.setVoipBoostEnabled (\\d+)");
	public static final Pattern VOIP_USE_PUSH_TO_TALK_PATTERN = Pattern
			.compile("AudioSettings\\.setVoipUsePushToTalk (\\d+)");
	public static final Pattern PROVIDER_PATTERN = Pattern
			.compile("AudioSettings\\.setProvider \"([^\"]+)\"");
	public static final Pattern SOUND_QUALITY_PATTERN = Pattern
			.compile("AudioSettings\\.setSoundQuality \"([^\"]+)\"");
	public static final Pattern EFFECTS_VOLUME_PATTERN = Pattern
			.compile("AudioSettings\\.setEffectsVolume (\\d+(?:\\.\\d+)?)");
	public static final Pattern MUSIC_VOLUME_PATTERN = Pattern
			.compile("AudioSettings\\.setMusicVolume (\\d+(?:\\.\\d+)?)");
	public static final Pattern HELP_VOICE_VOLUME_PATTERN = Pattern
			.compile("AudioSettings\\.setHelpVoiceVolume (\\d+(?:\\.\\d+)?)");
	public static final Pattern ENGLISH_ONLY_VOICES_PATTERN = Pattern
			.compile("AudioSettings\\.setEnglishOnlyVoices (\\d+)");
	public static final Pattern ENABLE_EAX_PATTERN = Pattern
			.compile("AudioSettings\\.setEnableEAX (\\d+)");

	private boolean voipEnabled;
	private float voipPlaybackVolume;
	private float voipCaptureVolume;
	private float voipCaptureThreshold;
	private boolean voipBoostEnabled;
	private boolean voipUsePushToTalk;
	private String provider;
	private String soundQuality;
	private float effectsVolume;
	private float musicVolume;
	private float helpVoiceVolume;
	private boolean englishOnlyVoices;
	private boolean enableEAX;

	public boolean isVoipEnabled() {
		return voipEnabled;
	}

	public void setVoipEnabled(boolean voipEnabled) {
		this.voipEnabled = voipEnabled;
	}

	public float getVoipPlaybackVolume() {
		return voipPlaybackVolume;
	}

	public void setVoipPlaybackVolume(float voipPlaybackVolume) {
		this.voipPlaybackVolume = voipPlaybackVolume;
	}

	public float getVoipCaptureVolume() {
		return voipCaptureVolume;
	}

	public void setVoipCaptureVolume(float voipCaptureVolume) {
		this.voipCaptureVolume = voipCaptureVolume;
	}

	public float getVoipCaptureThreshold() {
		return voipCaptureThreshold;
	}

	public void setVoipCaptureThreshold(float voipCaptureThreshold) {
		this.voipCaptureThreshold = voipCaptureThreshold;
	}

	public boolean isVoipBoostEnabled() {
		return voipBoostEnabled;
	}

	public void setVoipBoostEnabled(boolean voipBoostEnabled) {
		this.voipBoostEnabled = voipBoostEnabled;
	}

	public boolean isVoipUsePushToTalk() {
		return voipUsePushToTalk;
	}

	public void setVoipUsePushToTalk(boolean voipUsePushToTalk) {
		this.voipUsePushToTalk = voipUsePushToTalk;
	}

	public String getProvider() {
		return provider;
	}

	public void setProvider(String provider) {
		this.provider = provider;
	}

	public String getSoundQuality() {
		return soundQuality;
	}

	public void setSoundQuality(String soundQuality) {
		this.soundQuality = soundQuality;
	}

	public float getEffectsVolume() {
		return effectsVolume;
	}

	public void setEffectsVolume(float effectsVolume) {
		this.effectsVolume = effectsVolume;
	}

	public float getMusicVolume() {
		return musicVolume;
	}

	public void setMusicVolume(float musicVolume) {
		this.musicVolume = musicVolume;
	}

	public float getHelpVoiceVolume() {
		return helpVoiceVolume;
	}

	public void setHelpVoiceVolume(float helpVoiceVolume) {
		this.helpVoiceVolume = helpVoiceVolume;
	}

	public boolean isEnglishOnlyVoices() {
		return englishOnlyVoices;
	}

	public void setEnglishOnlyVoices(boolean englishOnlyVoices) {
		this.englishOnlyVoices = englishOnlyVoices;
	}

	public boolean isEnableEAX() {
		return enableEAX;
	}

	public void setEnableEAX(boolean enableEAX) {
		this.enableEAX = enableEAX;
	}
}
